megami_tenseifandomcom_ru-20200214-history
Модуль:Gamebox
local getArgs = require('Module:Arguments').getArgs local getGames = require('Module:Gamedata') local p = {} local function makeInvokeFunction(funcName) -- makes a function that can be returned from #invoke, using -- Module:Arguments. return function (frame) local args = getArgs(frame, {parentOnly = true}) return pfuncName(args) end end local stylet = '\n|-\n|style="font-size:100%; text-align:center;background:#222;" colspan=2|' local function cate(catename,sort) if not mw.title.getCurrentTitle():inNamespace('') then return '' end if sort then sort = '|' .. sort else sort = '' end return 'Category:' .. catename .. sort .. '' end local t = { 'image'={'image'}, 'image_width'={'image_width',default='240px'}, 'image_bg'={'image_bg'}, 'japan'={'japan'}, 'romaji'={'romaji'}, 'Разработчик'={'разработчик'}, 'Издатель'={'издатель'}, 'Жанр'={'жанр'}, 'Платформы'={'платформы'}, игры'={'режим игры'}, рейтинг'={'возрастной рейтинг'}, 'Управление'={'управление'}, 'cname'={'name',default=mw.title.getCurrentTitle().text}, -- Character's name известен, как'={'aka'}, имя'={'japan','kana'}, 'Ромадзи'={'romaji'}, 'rpname'={'RPname','rpname',h='Revelations Name'}, появление'={'first appearance','first'}, 'Affiliation'={'affiliation'}, 'Alignment'={'alignment'}, 'Команда'={'team'}, -- Strange Journey 'Occupation'={'job','occupation'}, 'Ранг'={'rank'}, -- Strange Journey 'Корабль'={'ship'}, -- Strange Journey 'Страна'={'country'}, -- Strange Journey 'Соображение'={'reason'}, -- Nocturne Sponsor'={'demonic sponsor','sponsor'}, -- Nocturne 'Origin'={'origin'}, 'Оружие'={'weapon'}, Partner'={'demonpartner'}, -- Devil Child 'Племя'={'tribe'}, -- DDSaga оружие'={'gun'}, Аватар'={'avatar'}, -- DDSaga Atma Avatar Клеймо'={'brand'}, -- DDSaga Atma brand Клейма'={'location'}, -- DDSaga Atma brand location Рождения'={'birthday','dob'}, 'Возраст'={'age'}, 'Зодиак'={'zodiac'}, 'Рост'={'height'}, 'Вес'={'weight'}, Color'={'comp'}, -- Devil Survivor 1 character's COMP color Phone Color'={'cell'}, -- Devil Survivor 2 character's cel phone color 'Residency'={'home'}, Demon'={'fatedemon'}, -- Demon fusions unlocked by raising Devil Survivor 2 character's Fate rank Demon'={'animedemon'}, -- Allied demons summoned in Devil Survivor 2 anime Крови'={'blood','blood type'}, Weapon'={'melee'}, Weapon'={'ranged'}, 'Аркана'={'arcana'}, -- Persona series 2'={'arcana2',h='Вторичная Аркана'}, -- Persona 1 and 2 'Персона'={'persona'}, -- Character's signature Persona(s) 'Class'={'class'}, -- SMTxFE Partner'={'miragepartner'}, -- SMTxFE 'Theme'={'theme','song'}, -- Character's theme music 'Сейю'={'japaneseva','Japanese VA'}, дублёр'={'englishva','English VA'}, } local game_stat_order1 = { 'Разработчик', 'Издатель', 'Жанр', 'Платформа', 'Режим игры', 'Возрастной рейтинг', 'Управление', } local char_stat_order = { 'Также известен, как', 'Японское имя', 'Ромадзи', 'rpname', 'Первое появление', 'Affiliation', 'Alignment', 'Команда', 'Occupation', 'Ранг', 'Корабль', 'Страна', 'Соображение', 'Demonic Sponsor', 'Origin', 'Оружие', 'Demon Partner', 'Племя', 'Огнестрельное оружие', 'Атма Аватар', 'Атма Клеймо', 'Расположение Клейма', 'Дата Рождения', 'Возраст', 'Зодиак', 'Рост', 'Вес', 'COMP Color', 'Cell Phone Color', 'Residency', 'Fate Demon', 'Anime Demon', 'Группа Крови', 'Melee Weapon', 'Ranged Weapon', 'Аркана', 'Аркана 2', 'Персона', 'Class', 'Mirage Partner', 'Theme', 'Сейю', 'Английский дублёр', } local function get_prop(args) local prop = {} for k, v in pairs(t) do for _, name in ipairs(v) do if argsname then propk = argsname break end end propk = propk or v.default end return prop end p.game = makeInvokeFunction('_game') function p._game(args) local prop = get_prop(args) local game = args1 or args.class or args.game or args.Game or '' local gameg -- Game general style if getGames.gamesgame.fallback then gameg = getGames.gamesgame.fallback -- e.g. 'p3f' and 'p3p' will fall back to 'p3' if applicable. else gameg = game end local gamen = getGames.gamesgame.name -- Full game name local gamegn = getGames.gamesgameg.name -- e.g. 'Persona 3 FES' will fall back to 'Persona 3' if applicable. if not prop.image_bg then prop.image_bg = '#333' end local styleg = '\n|-\n!style="background: ' .. getGames.gamesgameg.colorbg .. ';color: ' .. getGames.gamesgameg.font .. '"' local styleh = styleg .. '|' local stylec = styleg .. ' colspan=2|' local result if prop.image then prop.image = '\n|-\n| style="border-radius:3.5px; background:' .. prop.image_bg .. '" colspan="2" align="center" | ' else prop.image = '' end result = ' ' .. cate('Games') if gameg 'mt1' or gameg 'mt2' then result = result .. cate('Megami Tensei Series') elseif gameg 'smt1' or gameg 'smt2' or gameg 'smtif' or gameg 'smt3' or gameg 'smt9' or gameg 'smtim' or gameg 'smtsj' or gameg 'smt4' then result = result .. cate('Shin Megami Tensei Series') elseif gameg 'lb1' or gameg 'lb2' or gameg 'alb' or gameg 'lb3' or gameg 'lbs' or gameg 'lbnt1' or gameg 'lbnt2' or gameg 'lbnt3' then result = result .. cate('Last Bible Series') elseif gameg 'majin1' or gameg 'majin2' then result = result .. cate('Majin Tensei Series') elseif gameg 'smtds' or gameg 'sh' or gameg 'raidou1' or gameg 'raidou2' then result = result .. cate('Devil Summoner') elseif gameg 'p1' or gameg 'p2is' or gameg 'p2ep' or gameg 'p3' or gameg 'pts' or gameg 'p4' or gameg 'pq' or gameg 'p5' then result = result .. cate('Persona Series') elseif gameg 'childred' or gameg 'childblack' or gameg 'childwhite' or gameg 'childlight' or gameg 'childfire' or gameg 'childice' or gameg 'childmessiah' then result = result .. cate('Devil Children') elseif gameg 'ddsaga1' or gameg 'ddsaga2' then result = result .. cate('Digital Devil Saga') elseif gameg 'desu1' or gameg 'desu2' then result = result .. cate('Devil Survivor Series') end if gameg 'childred' or gameg 'childblack' then result = result .. cate('Devil Children Red/Black Book','!') elseif gameg 'childmessiah' then result = result .. cate('Messiah Riser','!') elseif gameg '' then elseif gameg then result = result .. cate(gamen,'!') end return result end p.char = makeInvokeFunction('_char') function p._char(args) local prop = get_prop(args) local game = args1 or args.class or args.game or args.Game or '' local gameg if getGames.gamesgame.fallback then gameg = getGames.gamesgame.fallback else gameg = game end local gamen = getGames.gamesgame.name local gamegn = getGames.gamesgameg.name local styleg = '\n|-\n!style="background: ' .. getGames.gamesgameg.colorbg .. ';color: ' .. getGames.gamesgameg.font .. '"' local styleh = styleg .. '|' local stylec = styleg .. ' colspan=2|' local result = ' ' if args.Part 'both' or args.Part 'Both' then if game 'p2is' then result = result .. cate('Персонажи ' .. getGames.games'p2is'.name) .. cate('Персонажи ' .. getGames.games'p2ep'.name) elseif game 'smtds' then result = result .. cate('Персонажи ' .. gamen) .. cate('Персонажи ' .. getGames.games'sh'.name) elseif game 'raidou1' then result = result .. cate('Персонажи ' .. gamen) .. cate('Персонажи ' .. getGames.games'raidou2'.name) elseif game 'desu2' then result = result .. cate('Персонажи ' .. gamen) .. cate('Персонажи ' .. getGames.games'desu2rb'.name) end elseif args.Part 'All' or args.Part 'all' then if game 'p3' then result = result .. cate('Персонажи ' .. gamen) .. cate('Персонажи ' .. getGames.games'p3f'.name) .. cate('Персонажи ' .. getGames.games'p3p'.name) elseif game 'p4' then result = result .. cate('Персонажи ' .. gamen) .. cate('Персонажи ' .. getGames.games'p4g'.name) .. cate('Персонажи ' .. getGames.games'p4a'.name) .. cate('Персонажи ' .. getGames.games'p4d'.name) end elseif gamen ~= nil then result = result .. cate('Персонажи ' .. gamen) end if args.alignment 'Law' then result = result .. cate('Law-Aligned Characters') elseif args.alignment 'Neutral' then result = result .. cate('Neutral-Aligned Characters') elseif args.alignment 'Chaos' then result = result .. cate('Chaos-Aligned Characters') end return result end return p -- --Категория:Модули --!